class Queue:
    def __init__(self,size=100) :#需要确定列表长度
        self.queue=[0 for _ in range(size)]
        self.size=size
        self.rear=0#队尾指针(进队)
        self.front=0#队首指针(出队)
    #向队列中添加的元素(进队)
    def push(self,element):
        if not self.is_pull():#判断队列是否队满
            self.rear=(self.rear+1)% self.size#队尾指针前进1
            self.queue[self.rear]=element#进队(将该元素加入队列)
        else:
            raise IndexError("Queue is full")#抛出异常
        
    # 删除队列中的元素(出队)
    def pop(self):
        if not self.is_empty():#判断队列是否队空
            self.front=(self.front+1)%self.size#队首指针前进1
            return self.queue[self.front]
        else:
            raise IndexError("Queue is empty")#抛出异常
    # 判断队列是否是空的
    def is_empty(self):
        return self.rear==self.front#对空条件(需要留一个空)
    
    # 判断队满
    def is_pull(self):
        return (self.rear + 1)% self.size==self.front#队满条件

if __name__=="__main__":
    q=Queue(5)  
    for i in range(4):
        q.push(i)
    print(q.pop())
    q.push(5)
    




